The present invention relates to test executive software for organizing and executing test sequences, e.g., to measure and/or control instrumentation systems, and more particularly relates to a system and method for importing/exporting test executive properties from/to a database.
A test executive is a program that allows a user to organize and execute sequences of reusable test modules to automatically control a test, such as a test involving one or more instruments or devices or software applications. The test modules often have a standard interface and typically can be created in a variety of programming environments. The test executive software operates as the control center for the automated test system. More specifically, the test executive software allows the user to create, configure, and/or control test sequence execution for various test applications, such as production and manufacturing test applications. Text executive software typically includes various features, such as test sequencing based on pass/fail results, logging of test results, and report generation, among others.
Test executives include various general concepts. The following comprises a glossary of test executive nomenclature.
Code Modulexe2x80x94A program module, such as a Windows Dynamic Link Library (.dll), Java class file, LabVIEW VI (.vi), etc., that contains one or more functions that perform a specific test or other action.
Test Modulexe2x80x94A code module that performs a test.
Stepxe2x80x94Any action, such as calling a test module to perform a specific test, that the user can include within a sequence of other actions.
Step Modulexe2x80x94The code module that a step calls.
Sequencexe2x80x94A series of steps that the user specifies for execution in a particular order. Whether and when a step is executed can depend on the results of previous steps.
Subsequencexe2x80x94A sequence that another sequence calls. The user specifies a subsequence call as a step in the calling sequence.
Sequence Filexe2x80x94A file that contains the definition of one or more sequences.
Sequence Editorxe2x80x94A program that provides a graphical user interface for creating, editing, and debugging sequences.
Run-time Operator Interfacexe2x80x94A program that provides a graphical user interface for executing sequences on a production station. A sequence editor and run-time operator interface can be separate application programs or different aspects of the same program.
Test Executive Enginexe2x80x94A module or set of modules that provide an API for creating, editing, executing, and debugging sequences. A sequence editor or run-time execution operator interface uses the services of a test executive engine.
Application Development Environment (ADE)xe2x80x94A programming environment such as LabVIEW, LabWindows/CVI, or Microsoft Visual C++, in which the user can create test modules and run-time operator interfaces.
Unit Under Test (UUT)xe2x80x94A device or component that is being tested; may include software and/or hardware elements.
In many cases it is useful to provide users with the ability to define variables and properties which affect the execution behavior of a test executive sequence. For example, a particular step may be used in testing a group of different devices, but the step may need to use different limit values for each device. In this example, properties for the limit values may be defined for the step, and the property values may be changed as necessary for each device, without requiring any modifications to the code module that the step calls.
As test executive sequences grow larger and more complex and as the number of different units under test requiring different test behavior grows, configuring sequences and steps with correct variable and property values becomes a difficult task. Thus, it is desirable to provide a way to automatically configure test executive sequences and steps with appropriate variable and property values. In particular, it is desirable to enable the values to be stored in a database and automatically loaded as needed.
The problems outlined above may in large part be solved by providing a system and method for importing and exporting test executive values from or to a database. The test executive values that may be imported and/or exported include sequence variable values and step property values. As used herein, a sequence comprises a series of steps, wherein the steps may be executed to perform a test of a unit under test (UUT). A given step can do many things, such as initializing an instrument, performing a complex test, or making a decision that affects the flow of execution in a sequence. Steps can perform these actions through several types of mechanisms, including jumping to another step, executing an expression, calling a sub-sequence or calling an external code module, etc.
A test executive may provide the user various places, referred to as variables and properties, in which data values can be stored. These data values may affect execution of the test executive sequence. Variables are properties that the user can freely create in certain contexts. Variables may be global to a sequence file or local to a particular sequence. Each step in a sequence can have properties. For example, a step might have an integer error code property. In one embodiment, individual steps may be instances of xe2x80x9cstep typesxe2x80x9d which have associated properties.
Values that are stored in variables and properties can be passed to code modules. When executing sequences, the test executive may maintain a xe2x80x9csequence contextxe2x80x9d that contains references to global variables and local variables and step properties in active sequences. The contents of the sequence context change depending on the currently executing sequence and step.
According to one embodiment of the present invention, the user may include a Property Loader step in a sequence, which is operable to dynamically, i.e., at run time, load property and/or variable values from a database. For example, it may be desirable to automatically configure a particular step with two different property values affecting operation of the step, depending on which of two different devices are currently under test. The Property Loader step may be placed in a setup group of the sequence, and the step(s) whose properties are configured may be placed in a main group of the sequence, so that when the sequence is executed the steps in the main group are configured with appropriate property values before running.
After including the Property Loader step in a sequence at edit time, the user may configure the step to load the desired variable and/or property values from the database. In various embodiments, this configuration process may require specifying various types of information. For example, the user may specify a particular database from which to load the values. The user may also specify a mapping of properties/variables to database values. For example, specifying this mapping may comprise specifying a database table and a mapping of properties/variables to columns in the table. For other types of databases, e.g., object-oriented databases, this mapping may be specified in any of various other ways. Exemplary user interface dialog boxes for specifying the mapping are discussed. The user may also configure the Property Loader step with filtering information specifying criteria which the database values must satisfy in order to be loaded. If the filtering criteria are not specified, default values for the variables/properties may be used instead.
It is noted that in alternative embodiments, a test executive sequence may be configured to dynamically load property/variable values from a database using methods other than including a Property Loader step in the sequence. For example, the test executive sequence may maintain information regarding data values to be loaded as a portion of the sequence data, wherein this information may be specified by user interface dialogs that may be invoked via a menu item accessible while editing a test executive sequence. In other words, the data import information is not necessarily included in a sequence step but may be associated with the sequence in any of various ways, and when the sequence is executed, the test executive application may be operable to use the information to load the specified property/variable values from a database.
In addition to dynamically loading values at runtime, in various embodiments the test executive may also enable a user to interactively, e.g., through a user interface menu item, request variable and property values to be imported from or exported to a database. For example, after interactively setting desired variable and property values for a sequence and steps in the sequence, respectively, the user may request the test executive to automatically export the values to a database. The exported values may, for example, later be used to dynamically configure a test executive sequence, as described above. Exporting values to a database may comprise automatically creating any necessary database structures, such as tables, columns, etc.